package org.zjx.model.route;

import com.alibaba.fastjson2.annotation.JSONType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.zjx.entity.Location;
import org.zjx.enums.route.RouteType;

/**
 * 合成旗传送路由实现
 * 特点：自定义坐标点传送、单向、中等耗时
 */

@JSONType(typeName = "FlyingFlagRoute")
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
public class FlyingFlagRoute extends AbstractRoute {

    /**
     * 构造函数
     *
     * @param start      起点位置
     * @param end        目标位置（必须与起点不同场景）
     */
    public FlyingFlagRoute(Location start, Location end) {
        super(start, end, 25, RouteType.FLYING_FLAG, false);
    }

    @Override
    protected Route createReverseRoute() {
        throw new UnsupportedOperationException("合成旗只能单向使用");
    }

    @Override
    public String getDescription() {
        return String.format("使用合成旗从%s传送到%s（%d秒）",getStart(), getEnd(), getTime());
    }
}